#include <bits/stdc++.h>
using namespace std;
int vis[11][11];
int a[11][11];
int n;
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
bool flag = false;


void dfs(int x,int y){
    if(x==n&&y==n){
        flag = true;
        return;
    }
    for (int  i = 0; i < 4; i++)
    {
        int nx = x+dx[i];
        int ny = y+dy[i];
        if(nx>0&&nx<=n&&ny>0&&ny<=n&&vis[nx][ny]==0&&a[nx][ny]==0){

            vis[nx][ny]=1;
            dfs(nx,ny);
        }

    }
    

}


int main(){

    cin>>n;
    
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }

    vis[1][1]=1;
    dfs(1,1);
    if(flag){
        cout<<"YES";
    }
    else{
        cout<<"NO";
    }



}